package com.manli.api.controller.wechat;

import com.manli.api.base.annotation.Permissions;
import com.manli.api.dto.*;
import com.manli.api.enums.ResultEnums;
import com.manli.api.pojo.*;
import com.manli.api.service.*;
import com.manli.api.service.wechat.WechatShopService;
import com.manli.api.util.*;
import com.manli.qq.weixin.mp.aes.AesException;
import com.manli.qq.weixin.mp.aes.SHA1;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiOperation;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;
import java.util.Arrays;
import java.util.concurrent.TimeUnit;

@RestController
@Api(tags = "商场接口")
@RequestMapping("api/wehcatshop")
public class WechatShopController {
    Logger logger = LoggerFactory.getLogger(getClass());

    @Autowired
    AdvertisementService advertisementService;
    @Autowired
    WechatShopService wechatShopService;
    @Autowired
    BuyCarLogService buyCarLogService;
    @Autowired
    VisitWantToBuyLogService visitWantToBuyLogService;
    @Autowired
    UserLinkUnionidService userLinkUnionidService;
    @Autowired
    RedisTemplate redisTemplate;
    @Autowired
    SessionInfoUtils sessionInfoUtils;
    @Autowired
    private AliYunSmsUtil aliYunSmsUtil;
    @Autowired
    NoticeTipService noticeTipService;
    @Autowired
    private AProvincesService aProvincesService;
    @Autowired
    private ACitiesService aCitiesService;
    @Autowired
    private AAreasService aAreasService;
    @Autowired
    private AStreetsService aStreetsService;
    @Autowired
    private WeChatUserInfoAddressService weChatUserInfoAddressService;

    @ApiOperation(value="商场首页", notes="广告图获取")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_OPEN)
    @RequestMapping(value="/getAdvertisement", method= RequestMethod.POST)
    public Result getAdvertisement(@RequestBody QueryParamsAdver QueryParamsAdver) {
        return advertisementService.queryPageForShop(QueryParamsAdver);
    }

    @ApiOperation(value="商场首页", notes="种草系列")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_OPEN)
    @PostMapping(value="/letBuy")
    public Result letBuy(@RequestBody QueryParamsLetBuy queryParamsLetBuy) {
        return wechatShopService.letBuy(queryParamsLetBuy);
    }

    @ApiOperation(value="商场首页", notes="商品下拉列表")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_OPEN)
    @PostMapping(value="/goodsList")
    public Result goodsList(@RequestBody QueryParamsGoodsList queryParamsLetBuy) {
        return wechatShopService.goodsList(queryParamsLetBuy);
    }

    @ApiOperation(value="商品浏览记录列表", notes="商品浏览记录")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    @PostMapping(value="/goodsBrowsingHistory")
    public Result goodsBrowsingHistory(@RequestBody QueryParamsGoodsBrowsing queryParamsGoodsBrowsing , HttpServletRequest request) {
        return wechatShopService.goodsBrowsingHistory(queryParamsGoodsBrowsing,request);
    }

    @ApiOperation(value="商品浏览记录新增", notes="商品浏览记录")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    @PostMapping(value="/goodsBrowsingHistoryAdd")
    public Result goodsBrowsingHistoryAdd(@RequestBody QueryParamsGoodsBrowsingAdd queryParamsGoodsBrowsingAdd, HttpServletRequest request) {
        return wechatShopService.goodsBrowsingHistoryAdd(queryParamsGoodsBrowsingAdd,request);
    }

    @ApiOperation(value="单个商品评价记录列表", notes="单个商品评价记录列表")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    @PostMapping(value="/goodsAppraiseList")
    public Result goodsAppraiseList(@RequestBody QueryParamsGoodsAppraise queryParamsGoodsAppraise) {
        return wechatShopService.goodsAppraiseList(queryParamsGoodsAppraise);
    }

    @ApiOperation(value="单个商品详情", notes="单个商品详情")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    @PostMapping(value="/goodsInfo")
    public Result goodsInfo(@RequestBody QueryParamsGoodsBrowsingAdd queryParamsGoodsBrowsingAdd) {
        return wechatShopService.goodsInfo(queryParamsGoodsBrowsingAdd);
    }

    @ApiOperation(value="店铺详情", notes="店铺详情")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    @PostMapping(value="/shopInfo")
    public Result shopInfo(@RequestBody QueryParamsShopInfo QueryParamsShopInfo) {
        return wechatShopService.shopInfo(QueryParamsShopInfo);
    }

    @ApiOperation(value="店铺详情页面宝贝分类列表", notes="店铺详情页面宝贝分类列表")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    @PostMapping(value="/shopInfoGoodsTypes")
    public Result shopInfoGoodsTypes(@RequestBody QueryParamsShopInfo QueryParamsShopInfo) {
        return wechatShopService.shopInfoGoodsTypes(QueryParamsShopInfo);
    }

    @ApiOperation(value="店铺所有商品评价记录列表", notes="店铺所有商品评价记录列表")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    @PostMapping(value="/shopAppraiseList")
    public Result shopAppraiseList(@RequestBody QueryParamsShopGoodsAppraise queryParamsShopGoodsAppraise) {
        return wechatShopService.shopAppraiseList(queryParamsShopGoodsAppraise);
    }

    @ApiOperation(value="购物车详情", notes="购物车详情")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    @PostMapping(value="/getBuyCarInfo")
    public Result getBuyCarInfo(HttpServletRequest request ,  @RequestBody QueryParamsBuyCarInfo buyCarInfo) {
        return wechatShopService.getBuyCarInfo(request,buyCarInfo);
    }

    /**
     * 加入购物车
     */
    @ApiOperation(value = "加入购物车",notes = "加入购物车")
    @PostMapping("/saveBuyCarLog")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result saveBuyCarLog(@RequestBody BuyCarLog buyCarLog, HttpServletRequest request){
        return buyCarLogService.save(buyCarLog,request);
    }

    /**
     * 更新购物车
     */
    @ApiOperation(value = "更新购物车",notes = "更新购物车")
    @PostMapping("/updateBuyCarLog")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result updateBuyCarLog(@RequestBody BuyCarLog buyCarLog, HttpServletRequest request){
        return buyCarLogService.updateTemplateById(buyCarLog);
    }

    /**
     * 保存浏览预购记录
     */
    @ApiOperation(value = "保存浏览预购记录",notes = "保存浏览预购记录")
    @PostMapping("/saveVisitWantToBuyLog")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result saveVisitWantToBuyLog(@RequestBody VisitWantToBuyLog visitWantToBuyLog, HttpServletRequest request){
        return visitWantToBuyLogService.save(visitWantToBuyLog,request);
    }

    @ApiOperation(value = "获取当天浏览预购记录",notes = "获取当天浏览预购记录")
    @PostMapping("/getVisitWantToBuyLogForToday")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result getVisitWantToBuyLogForToday(@RequestBody QueryParamsVisitWantToBuyLog queryParamVisitWantToBuyLog, HttpServletRequest request){
        return visitWantToBuyLogService.getVisitWantToBuyLogForToday(queryParamVisitWantToBuyLog,request);
    }

    @ApiOperation(value="根据商品id查询商品所有规格", notes="根据商品id查询商品所有规格")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    @PostMapping(value="/getGoodsModelByDefId")
    public Result getGoodsModelByDefId(@RequestBody QueryParamsGetGoodsModels queryParamsGetGoodsModels) {
        return wechatShopService.getGoodsModelByDefId(queryParamsGetGoodsModels);
    }

    @ApiOperation(value="保存搜索记录", notes="保存搜索记录")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    @PostMapping(value="/saveSearchLog")
    public Result saveSearchLog(@RequestBody SearchLog searchLog,HttpServletRequest request) {
        return wechatShopService.saveSearchLog(searchLog,request);
    }

    @ApiOperation(value="删除搜索记录", notes="删除搜索记录")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    @PostMapping(value="/delSearchLog")
    public Result delSearchLog(HttpServletRequest request) {
        return wechatShopService.delSearchLog(request);
    }

    @ApiOperation(value="查询搜索记录并获取近10天热门搜索", notes="查询搜索记录并获取近10天热门搜索")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    @PostMapping(value="/getSearchLog")
    public Result getSearchLog(HttpServletRequest request) {
        return wechatShopService.getSearchLog(request);
    }

    @ApiOperation(value="商城主页商品分类列表", notes="商城主页分类列表")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    @PostMapping(value="/goodsTypes")
    public Result goodsTypes() {
        return wechatShopService.goodsTypes();
    }

    @ApiOperation(value="根据商品分类id分页查询商品", notes="根据商品分类id分页查询商品")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    @PostMapping(value="/getGoodsListBygoodsTypeId")
    public Result getGoodsListBygoodsTypeId(@RequestBody QueryParamsGetGoodsListByTypeId queryParamsGetGoodsListByTypeId) {
        return wechatShopService.getGoodsListBygoodsTypeId(queryParamsGetGoodsListByTypeId);
    }

    @ApiOperation(value="根据商品名称分页搜索查询商品", notes="根据商品名称分页搜索查询商品")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    @PostMapping(value="/getGoodsListBygoodsName")
    public Result getGoodsListBygoodsName(@RequestBody QueryParamsGetGoodsListByGoodsName queryParamsGetGoodsListByGoodsName , HttpServletRequest request) {
        return wechatShopService.getGoodsListBygoodsName(queryParamsGetGoodsListByGoodsName , request);
    }


    @ApiOperation(value = "获取公告提醒浏览日志表列表附查看状态",notes = "获取公告浏览日志表列表附查看状态")
    @PostMapping("/noticeTipList")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result noticeTipList(@RequestBody QueryParamsLong queryParams,HttpServletRequest request){
        return wechatShopService.noticeTipList(queryParams,request);
    }

    @ApiOperation(value = "公告消息单条信息",notes = "公告消息单条信息")
    @PostMapping("/oneNiticeTipById")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result oneNiticeTipById(@RequestBody QueryParamsNoticTip noticeTipId){
        if(noticeTipId.getNoticeTipId() == null){
            return ResultUtil.error(-1,"公告id为空");
        }
        return noticeTipService.getById(noticeTipId.getNoticeTipId());
    }

    @ApiOperation(value = "打上公告已浏览标记",notes = "打上公告已浏览标记")
    @PostMapping("/noticeTipLooked")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result noticeTipLooked(@RequestBody NoticeTipLogSave noticeTipLog,HttpServletRequest request){
        return wechatShopService.noticeTipLooked(noticeTipLog,request);
    }

    /*@ApiOperation(value = "微信账号绑定获取code",notes = "微信账号绑定获取code")
    @PostMapping("/getUnionLinkUserCode")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result getUnionLinkUserCode(HttpServletRequest request){
        return wechatShopService.getUnionLinkUserCode(request);
    }*/


    @ApiOperation(value = "绑定微信和后台账号",notes = "")
    @PostMapping("/bindUnionLinkUserCode")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result saveOrUpdate(@RequestBody UserLinkUnionid userLinkUnionid){
        if (!redisTemplate.hasKey(userLinkUnionid.getCode())){
            return ResultUtil.error(ResultEnums.BIND_UNIONID_USERID_CODE_EXPIRE_TIME.getCode(),ResultEnums.BIND_UNIONID_USERID_CODE_EXPIRE_TIME.getMsg());
        }
        UserLinkUnionid data = userLinkUnionidService.getSingleByUnionid(userLinkUnionid.getUnionid(),1);
        UserLinkUnionid dataOther = userLinkUnionidService.getByUserId(userLinkUnionid.getUserId(),1);
        if (data != null || dataOther != null){
            if(!data.getUserId().equals(userLinkUnionid.getUserId())){
                return ResultUtil.error(ResultEnums.USER_UNIONID_IS_EXIT.getCode(),ResultEnums.USER_UNIONID_IS_EXIT.getMsg());
            }
            if(!dataOther.getUnionid().equals(userLinkUnionid.getUnionid())){
                return ResultUtil.error(ResultEnums.USER_UNIONID_IS_EXIT.getCode(),ResultEnums.USER_UNIONID_IS_EXIT.getMsg());
            }
        }
        userLinkUnionid.setStatus(1);
        userLinkUnionidService.save(userLinkUnionid);
        return ResultUtil.success("微信和管理系统账号绑定成功");
    }

    //TODO
    // 砍价和拼团的商品评价可以复用之前的单个商品评价，复制下面代码，双击shift粘贴（仅适用idea）
    // com/manli/api/controller/wechat/WechatShopController.java:86


    @ApiOperation(value = "用户手机绑定",notes = "用户手机绑定")
    @PostMapping("/userBindPhone")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result userBindPhone(@RequestBody WeChatUserInfoDetail weChatUserInfoDetail ,HttpServletRequest request)throws Exception{
        return wechatShopService.userBindPhone(weChatUserInfoDetail,request);
    }

    @ApiOperation(value = "发送手机验证码",notes = "")
    @PostMapping("/sendSms")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_OPEN)
    public Result sendSms(@RequestBody QueryParamsPhone phone)throws Exception{
        ObjectEmptyUtil.phoneIslegal(phone.getPhone());
        aliYunSmsUtil.sendSms(phone.getPhone(), NumsUtil.getFourNum());
        return ResultUtil.success();
    }

    @ApiOperation(value = "区域划分省级表全部数据信息",notes = "")
    @PostMapping("/provincesAll")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result provincesAll(){
        return aProvincesService.queryAll();
    }

    @ApiOperation(value = "区域划分市级表全部数据信息",notes = "")
    @PostMapping("/cityAll")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result cityAll(@RequestBody QueryParamsArea provinceCode){
        return aCitiesService.queryAll(provinceCode);
    }

    /**
     * 全部数据信息
     */
    @ApiOperation(value = "区域划分区级表全部数据信息",notes = "")
    @PostMapping("/areaAll")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result areaAll(@RequestBody QueryParamsArea1 cityCode){
        return aAreasService.queryAll(cityCode);
    }

    /**
     * 全部数据信息
     */
    @ApiOperation(value = "区域划分镇级表全部数据信息",notes = "")
    @PostMapping("/streetAll")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result streetAll(@RequestBody QueryParamsArea2 areaCode){
        return aStreetsService.queryAll(areaCode);
    }

    @ApiOperation(value = "查询收货地址",notes = "")
    @PostMapping("/getWeChatUserInfoAddress")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result getWeChatUserInfoAddress(HttpServletRequest request){
        return weChatUserInfoAddressService.getWeChatUserInfoAddress(request);
    }

    @ApiOperation(value = "查询当个收货地址",notes = "")
    @PostMapping("/getSingleWeChatUserInfoAddress")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result getSingleWeChatUserInfoAddress(@RequestBody WeChatUserInfoAddress address , HttpServletRequest request){
        return weChatUserInfoAddressService.getSingleWeChatUserInfoAddress(address,request);
    }

    @ApiOperation(value = "新增收货地址",notes = "")
    @PostMapping("/addWeChatUserInfoAddress")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result addWeChatUserInfoAddress(@RequestBody WeChatUserInfoAddress weChatUserInfoAddress,HttpServletRequest request){
        return weChatUserInfoAddressService.addWeChatUserInfoAddress(weChatUserInfoAddress,request);
    }

    @ApiOperation(value = "更新收货地址",notes = "")
    @PostMapping("/updateWeChatUserInfoAddress")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result updateWeChatUserInfoAddress(@RequestBody WeChatUserInfoAddress weChatUserInfoAddress,HttpServletRequest request){
        return weChatUserInfoAddressService.updateWeChatUserInfoAddress(weChatUserInfoAddress,request);
    }

    @ApiOperation(value = "更新收货地址为默认地址",notes = "")
    @PostMapping("/updateWeChatUserInfoAddressSetDefault")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result updateWeChatUserInfoAddressSetDefault(@RequestBody WeChatUserInfoAddress weChatUserInfoAddress,HttpServletRequest request){
        return weChatUserInfoAddressService.updateWeChatUserInfoAddressSetDefault(weChatUserInfoAddress,request);
    }

    @ApiOperation(value = "个人中心订单列表",notes = "")
    @PostMapping("/getMineOrderInfo")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result getMineOrderInfo(@RequestBody QueryParamsMyOrderInfo myOrderInfo,HttpServletRequest request){
        return wechatShopService.getMineOrderInfo(myOrderInfo,request);
    }

    @ApiOperation(value = "商品评价新增",notes = "商品评价新增")
    @PostMapping("/goodsAppraiseAdd")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result goodsAppraiseAdd(@RequestBody AppraiseLog appraiseLog,HttpServletRequest request){
        return wechatShopService.goodsAppraiseAdd(appraiseLog,request);
    }

    //漫淘圈
    @ApiOperation(value = "动态主题查询",notes = "动态主题查询")
    @PostMapping("/selfSpaceThemes")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result selfSpaceThemes(@RequestBody QueryParamsSelfSpaceThemes queryParamsSelfSpaceThemes,HttpServletRequest request){
        return wechatShopService.selfSpaceThemes(queryParamsSelfSpaceThemes,request);
    }

    @ApiOperation(value = "个人动态统计详情",notes = "个人动态统计详情")
    @PostMapping("/selfSpaceStatistics")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result selfSpaceStatistics(@RequestBody QueryParamsSelfSpaceStatistics queryParamsSelfSpaceStatistics,HttpServletRequest request){
        return wechatShopService.selfSpaceStatistics(queryParamsSelfSpaceStatistics,request);
    }

    @ApiOperation(value = "动态列表查询",notes = "动态列表查询")
    @PostMapping("/spaceList")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_OPEN)
    public Result spaceList(@RequestBody QueryParamsSpaceList queryParamsSpaceList,HttpServletRequest request)throws Exception{
        return wechatShopService.spaceList(queryParamsSpaceList,request);
    }

    @ApiOperation(value = "根据动态id查询动态",notes = "根据动态id查询动态")
    @PostMapping("/querySpaceById")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_OPEN)
    public Result querySpaceById(@RequestBody QueryParamsSpace queryParamsSpace,HttpServletRequest request)throws Exception{
        return wechatShopService.querySpaceById(queryParamsSpace,request);
    }

    @ApiOperation(value = "根据动态评论id查询动态评论",notes = "根据动态评论id查询动态评论")
    @PostMapping("/querySpaceLogById")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result querySpaceLogById(@RequestBody QueryParamsSpaceLog queryParamsSpace,HttpServletRequest request)throws Exception{
        return wechatShopService.querySpaceLogById(queryParamsSpace,request);
    }

    @ApiOperation(value = "动态评论列表",notes = "动态评论列表")
    @PostMapping("/spaceReviewList")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result spaceReviewList(@RequestBody QueryParamsSpaceReviewList queryParamsSpaceReviewList,HttpServletRequest request)throws Exception{
        return wechatShopService.spaceReviewList(queryParamsSpaceReviewList,request);
    }

    @ApiOperation(value = "动态新增",notes = "动态新增")
    @PostMapping("/spaceAdd")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result spaceAdd(@RequestBody ManliSpace manliSpace,HttpServletRequest request){
        return wechatShopService.spaceAdd(manliSpace,request);
    }

    @ApiOperation(value = "动态评论新增",notes = "动态评论新增")
    @PostMapping("/spaceReviewAdd")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result spaceReviewAdd(@RequestBody ManliSpaceLog manliSpaceLog,HttpServletRequest request){
        return wechatShopService.spaceReviewAdd(manliSpaceLog,request);
    }

    @ApiOperation(value = "动态点赞+1",notes = "动态点赞+1")
    @PostMapping("/spaceLikeCountAdd")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result spaceLikeCountAdd(@RequestBody QueryParamsSelfCountAdd queryParamsSelfCountAdd,HttpServletRequest request){
        return wechatShopService.spaceLikeCountAdd(queryParamsSelfCountAdd,request);
    }

    @ApiOperation(value = "动态阅读量+1",notes = "动态阅读量+1")
    @PostMapping("/spaceReadCountAdd")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_OPEN)
    public Result spaceReadCountAdd(@RequestBody QueryParamsSelfCountRead queryParamsSelfCountAdd){
        return wechatShopService.spaceReadCountAdd(queryParamsSelfCountAdd);
    }

    @ApiOperation(value = "动态评论点赞+1",notes = "动态评论点赞+1")
    @PostMapping("/spaceReviewLikeCountAdd")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_LOGIN)
    public Result spaceReviewLikeCountAdd(@RequestBody QueryParamsSelfReviewCountAdd queryParamsSelfReviewCountAdd,HttpServletRequest request){
        return wechatShopService.spaceReviewLikeCountAdd(queryParamsSelfReviewCountAdd,request);
    }

    @ApiOperation(value = "微信端功能展示显示控制",notes = "微信端功能展示显示控制")
    @PostMapping("/getWechatFuncControllerList")
    @Permissions(module = "", privilege = "", typeOfAccess = Permissions.METHOD_OPEN)
    public Result getWechatFuncControllerList(@RequestBody QueryWechatFuncControllerPojo pojo,HttpServletRequest request){
        return wechatShopService.getWechatFuncControllerList(pojo,request);
    }
    //TODO 直播

}
